#pragma once
#include <stdint.h>
#include <stdbool.h>

#define TIO_RS485_MAX_BUFFER 1024
typedef enum TIOLampColor
{
    TIO_LAMP_AUTO = 0,
    TIO_LAMP_BLUE = 1,
    TIO_LAMP_GREEN = 2,
    TIO_LAMP_YELLOW = 3,
    TIO_LAMP_RED = 4,
    TIO_LAMP_YELLOW_TWINKLE = 5,
} TIOLampColor;

typedef struct
{
    int tio_version;
    bool UIKey_free;
    bool UIKey_point;
    bool UIKey_pause_resume;
    bool UIKey_custome;  // ATOM 自定义按钮
    uint8_t DI_buffer;
    uint8_t DO_buffer;
    uint8_t Lamp_color;  // 0x00: auto, 0x01:blue, 0x02:green, 0x03:yellow, 0x04:red, 0x05:yellow twinkle
    double AI[4];
    double AO[4];
    uint8_t is_overload;
    int torque[6];
    int has_tio;
    int AI_range[4];
} TIOStatus;

typedef struct TIOSetting
{
    uint8_t DO_buffer;
    TIOLampColor Lamp_color;  // 0x00: auto, 0x01:blue, 0x02:green, 0x03:yellow, 0x04:red, 0x05:yellow twinkle
    int AI_range;
} TIOSetting;